/**
 * 使用中间件管理会话，在服务器上使用`Supabase`客户端时，
 * 您必须执行额外的步骤以确保用户的身份验证会话保持活动状态。
 * 由于用户的会话是在`cookie`中跟踪的，
 * 因此我们需要读取此`cookie`并在必要时更新它。
 * `Next.js`服务器组件允许您读取`cookie`，但不能写回它。
 * 另一方面，中间件允许您读取和写入`cookie`。
 * `Next.js`中间件在渲染每个路由之前立即运行。
 * 在加载服务器组件路由之前，我们将使用中间件刷新用户的会话。
 */
import { createMiddlewareClient } from '@supabase/auth-helpers-nextjs';

//next/server提供仅服务器帮助程序，用于中间件和边缘 API 路由。
// https://nextjs.org/docs/pages/api-reference/functions/next-server
import { NextRequest, NextResponse } from 'next/server';

export async function middleware(req: NextRequest) {
  const res = NextResponse.next();
  const supabase = createMiddlewareClient({ req, res });
  await supabase.auth.getSession();
  return res;
}
